package com.mls.guardian.remoting.client;

import com.mls.guardian.protocol.RemoteCommand;
import com.mls.guardian.remoting.executor.ExecutorThreadsMap;
import com.mls.guardian.remoting.executor.RemoteExecutor;

/**
 * Created by jl on 15/10/27.
 */
public interface Client {
    public RemoteCommand sendMessageSync(String addr, final RemoteCommand request, long timeoutMillis) throws Exception;
    public RemoteCommand sendMessageSync(final RemoteCommand request, long timeoutMillis) throws Exception;
    public void registerExcutor(int code,RemoteExecutor remoteExcutor);
    public void reconnect() throws InterruptedException, Exception;
    public void shutdown();
    public boolean keepAaliveIsActive();
}
